package com.pureut.system.service;

import com.pureut.system.domain.dto.MaterialHalfDto;
import com.pureut.system.domain.MaterialHalf;
import com.pureut.system.domain.dto.ProjectRecursionDto;
import com.pureut.system.domain.vo.MaterialHalfVo;
import com.pureut.system.export.MaterialHalfExport;

import java.util.List;

/**
 * @Description
 * @Param
 * @Date
 * @Author hl
 **/
public interface IMaterialHalfService {
    /**
     * 查询半成品信息
     */
    List<MaterialHalfDto> selectHalfList(MaterialHalfVo materialHalf);

    /**
     * 新增半成品信息
     */
    int insertMaterialHalf(MaterialHalf materialHalf) throws Exception;

    /**
     * 删除半成品信息
     */
    int deleteMaterialHalf(String materialId) throws Exception;

    /**
     * 查询半成品信息
     */
    MaterialHalfDto selectMaterialHalfById(long materialId);

    /**
     * 冻结半成品信息
     */
    int updatMaterialHalfEdit(MaterialHalf materialHalf) throws Exception;

    /**
     * 解冻半成品信息
     */
    int updateMaterialHalfEditFreeze(MaterialHalf materialHalf);

    /**
     * 树结构半成品信息
     */
    List<ProjectRecursionDto> selectChildrenHalfListThe();

    /**
     * 根据物料编码查询详情（半成品信息）
     * @param materialCode
     * @return
     */
    MaterialHalf selectMaterialHalfMaterialCode(String materialCode);

    /**
     *根据物料编码查询详情(委外订单明细列表fegin调用)
     */
    MaterialHalfDto getHalfViewByMaterialCode(String materialCode);

    /**
     * 半成品导入
     * @param coCustomer
     * @return
     */
    String importMouldData(List<MaterialHalfExport> coCustomer);
}
